1 package uba.db;
2
3 import uba.db.table.TableSchema;
4
5 /***
6 * Excepción generada cuando no se puede crear una tabla.
7 *
8 * @version $Revision: 1.3 $
9 */
10 public class TableCreationException extends Exception {
11 private static final long serialVersionUID = 3257001038690071862L;
12 private TableSchema tableSchema;
13 private transient Database database;
14
15 /***
16 * Crea una nueva instancia de la excepción indicando la base de datos y el
17 * esquema de la tabla para el cual fallo la creación.
18 *
19 * @param database
20 * base de datos
21 * @param tableSchema
22 * esquema de la tabla.
23 * @param cause
24 * excepción que causo el error
25 */
26 public TableCreationException(Database database, TableSchema tableSchema,
27 Throwable cause) {
28 super(cause);
29 this.tableSchema = tableSchema;
30 this.database = database;
31 }
32
33 /***
34 * Retorna el esquema de tabla para el cual fallo la creación.
35 */
36 public TableSchema tableSchema() {
37 return tableSchema;
38 }
39
40 /***
41 * Retorna la base de datos donde ocurrió el error.
42 *
43 * @return las excepciones son serializables, pero una base de datos no, por
44 * eso este método puede llegar a retorna <i>null</i>.
45 */
46 public Database database() {
47 return database;
48 }
49
50 /***
51 * @see java.lang.Throwable#getMessage()
52 */
53 public String getMessage() {
54 return "Ocurrió un error al crear la tabla " + tableSchema().tableName();
55 }
56 }